import React, { Component } from 'react'
import { connect } from 'react-redux'
// connect  内置的高阶组件

class Com extends Component {
    render() {
        const { count, add, sync, list } = this.props
        console.log(list)
        return (
            <div>
                Com --- { count }
                <button onClick = { add }>加加加</button>
                <button onClick = { sync }>准备执行异步任务</button>
            </div>
        )
    }
}

// 映射  redux中的数据   去  当前组件的props上
let mapStateToProps = (state) => {
    // state   代表的是initState里面的数据
    const { count, list } = state
    return {
        count,
        list
    }
}
// 映射  redux中修改数据的方法   去  当前组件的props上
let mapDispatchToProps = (dispatch) => {
    // dispatch
    return {
        add() {
            dispatch({ type: "ADD" })
        },
        sync() {
            dispatch({ type: "SAGA_ADD" })
        }
    }
}

// 柯里化函数
Com = connect(mapStateToProps, mapDispatchToProps)(Com)

export default Com
